<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>


    <script>
        // 使用递归求下标为n的斐波那契数
        // 这是个人名： 斐波那契
      
        // 问题：
        // 斐波那契数列就是最前面两个数字分别是0，1 之后每一个斐波那契数字是之前两个数字的之和。
        // 即 0,1,1,2,3,5,8,13,21,34,55,89...
        // 数列：[0, 1, 1, 2, 3, 5, 8, 13, 21 , 34, 55, 89...]
        // 下标：[0, 1, 2, 3, 4, 5, 6, 7 , 8  , 9 , 10, 11,...]

        // 寻规律
        // 从第三项数据开始。前两项数据相加得到当前的结果
        // fn(0)  返回值  0
        // fn(1)  返回值  1
        // fn(2)  返回值  1 

        // fn(3)  返回值  2     fn(3-1) + fn(3-2) === >   fn(2) + fn(1) === > 1 + 1
        // fn(4)  返回值  3  
        // fn(5)  返回值  5


        // fn(n)  推导过程       fn(n-1) + fn(n-2);  下标(n)  ,n-1是前一项； n-2是前前一项

        // 要求：

        // 1. 创建 fibonacci 函数接收 n 作为参数，n 表示需要获取的斐波那契数的下标数
        // 2. 调用 fibonacci 函数传入下标返回斐波那契数列中指定下标的数字
        // 3. 使用递归实现该功能

        // 部分代码：
        var fibonacci = function(n) {
            // 代码实现
            if(n == 0 || n == 1 ){
                return n ;
            }
            if(n == 2){
                return 1;
            }
            // 返回前两项数据相加的结果 (斐波那契数)
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
        
        // 例如:
        // [0,1,1,2,3,5,8,13,21,34,55,89]
        var res = fibonacci(4) // 3
        console.log(res);//3

        var res2 = fibonacci(10) // 55
        console.log(res2);// 55

    </script>
</body>
</html>